package com.xquant.trade.trade.entity;

import com.xquant.common.core.annotation.Excel;

import java.math.BigDecimal;


/**
 * @author cloud
 * @version 1.0
 * @description: 期权簿记excel导入父类
 * @date 2022/4/18 13:42
 */
public class OptionTradeImportDto {

    @Excel(name = "本方账户",notBlank = true,colLength = 50)
    private String accName;
    @Excel(name = "交易对手")
    private String partyName;
    @Excel(name = "合约编号",notBlank = true,colLength = 100)
    private String iCode;
    @Excel(name = "产品编号",colLength = 100)
    private String extTradeId;
    @Excel(name = "交易日期",notBlank = true,colLength = 100,dateFormat = "yyyy-MM-dd")
    private String tradeDate;
    @Excel(name = "初始保证金金额(元)",NUMBER = true)
    private BigDecimal margin = BigDecimal.ZERO;
    @Excel(name = "期权费金额(元)",NUMBER = true)
    private BigDecimal fee = BigDecimal.ZERO;
    @Excel(name = "期权费支付日",dateFormat = "yyyy-MM-dd")
    private String setDate;
    @Excel(name = "备注")
    private String remark;

    private int paymentDaysOffset;

    private int term;

    @Excel(name = "交易方向",limitWords = "买入,卖出")
    private String payDirection;

    @Excel(name = "标的",notBlank = true)
    private String instrument;

    private BigDecimal spotPrice;

    public BigDecimal getSpotPrice() {
        return spotPrice;
    }

    public void setSpotPrice(BigDecimal spotPrice) {
        this.spotPrice = spotPrice;
    }

    public int getPaymentDaysOffset() {
        return paymentDaysOffset;
    }

    public void setPaymentDaysOffset(int paymentDaysOffset) {
        this.paymentDaysOffset = paymentDaysOffset;
    }

    public int getTerm() {
        return term;
    }

    public void setTerm(int term) {
        this.term = term;
    }

    @Excel(name = "起始日",notBlank = true,dateFormat = "yyyy-MM-dd")
    private String issueDate;
    @Excel(name = "到期日",notBlank = true,dateFormat = "yyyy-MM-dd")
    private String maturityDate;
    @Excel(name = "支付日",notBlank = true,dateFormat = "yyyy-MM-dd")
    private String terminationPaymentDate;
    @Excel(name = "名义本金(元)",notBlank = true,NUMBER = true)
    private BigDecimal volume = BigDecimal.ZERO;

    public String getExtTradeId() {
        return extTradeId;
    }

    public void setExtTradeId(String extTradeId) {
        this.extTradeId = extTradeId;
    }

    public String getAccName() {
        return accName;
    }

    public void setAccName(String accName) {
        this.accName = accName;
    }

    public String getPartyName() {
        return partyName;
    }

    public void setPartyName(String partyName) {
        this.partyName = partyName;
    }

    public String getICode() {
        return iCode;
    }

    public void setICode(String iCode) {
        this.iCode = iCode;
    }

    public String getTradeDate() {
        return tradeDate;
    }

    public void setTradeDate(String tradeDate) {
        this.tradeDate = tradeDate;
    }

    public BigDecimal getMargin() {
        return margin;
    }

    public void setMargin(BigDecimal margin) {
        this.margin = margin;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public String getSetDate() {
        return setDate;
    }

    public void setSetDate(String setDate) {
        this.setDate = setDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getPayDirection() {
        return payDirection;
    }

    public void setPayDirection(String payDirection) {
        this.payDirection = payDirection;
    }

    public String getInstrument() {
        return instrument;
    }

    public void setInstrument(String instrument) {
        this.instrument = instrument;
    }

    public String getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(String issueDate) {
        this.issueDate = issueDate;
    }

    public String getMaturityDate() {
        return maturityDate;
    }

    public void setMaturityDate(String maturityDate) {
        this.maturityDate = maturityDate;
    }

    public BigDecimal getVolume() {
        return volume;
    }

    public void setVolume(BigDecimal volume) {
        this.volume = volume;
    }

    public String getTerminationPaymentDate() {
        return terminationPaymentDate;
    }

    public void setTerminationPaymentDate(String terminationPaymentDate) {
        this.terminationPaymentDate = terminationPaymentDate;
    }

    @Override
    public String toString() {
        return "OptionTradeImportDto{" +
                "accId='" + accName + '\'' +
                ", partyId='" + partyName + '\'' +
                ", iCode='" + iCode + '\'' +
                ", tradeDate='" + tradeDate + '\'' +
                ", margin=" + margin +
                ", fee=" + fee +
                ", setDate='" + setDate + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}
